package top.yxqz.number4.controller;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import top.yxqz.number4.entity.TSsmEmp;
import top.yxqz.number4.service.TSsmEmpService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.io.Serializable;
import java.util.List;

/**
 * (TSsmEmp)表控制层
 *
 */
@RestController
@Slf4j
public class TSsmEmpController {

//    日志工厂对象
private static final Logger logger = LoggerFactory.getLogger(TSsmEmpController.class);
    /**
     * 服务对象
     * tSsmEmpService
     */
    @Autowired
    private TSsmEmpService service;

    /**
     * 增加员工（表单提交）
     */
    @PostMapping("emp")
    public R addEmp(TSsmEmp targetEmp) {
        System.out.println("前端传入的数据：" + targetEmp);
        boolean res = service.save(targetEmp);
        return R.ok(res);
    }


    /**
     * 通过ID获取员工信息
     */
//    public TSsmEmp getEmpByIdOld(Integer empId) {
//        return service.getById(empId);
//    }
    @GetMapping("emp")
    public R getEmpById(@RequestParam("id") Integer empId) {
//        封装返回的对象
//        R<TSsmEmp> res = new R<TSsmEmp>();
        /**
         * code--响应码
         * msg--消息（描）
         * data----结果
         */
//        res.setData(service.getById(empId));
//        res.setMsg("获取消息成功");
//        res.setCode(200);

//        return R.failed("你好 系统错误！！！");
        return R.ok(service.getById(empId));
    }


    /**
     * 获取所有员工数据
     */
    @GetMapping("/emps/")
    public R getAllEmps() {
        List<TSsmEmp> emps = service.getAllEmps();
        return R.ok(emps);
    }

    /**
     * 分页获取所有员工数据
     * 实现该业务需要的条件
     * 1.页码信息 页码数（page） 条数（size） total（条目数）---页码对象（用参数）
     * 2.查询条件（通过姓名、age、email）----对象
     * <p>
     * 写业务的思路
     * 1.明确是否需要传入条件
     * 2.调用服务层接口--调用持久层接口
     * 3.单元测试
     * 4.接口测试
     * 5.前后端联调
     * <p>
     * GET http://localhost/emps/1/10?empName=&age=&email=
     */
    @GetMapping("/emps/{currentPage}/{pageSize}")
    public R getAllEmpsPage(@PathVariable("currentPage") Integer pageNumber, @PathVariable("pageSize") Integer sizeNumber, TSsmEmp targetEmp) {
        log.error("前端传入的查询条件："+targetEmp);
        log.info("哈哈哈哈哈哈");
        logger.debug("你好 你进入了emps这个请求");
        IPage<TSsmEmp> page = service.getPage(pageNumber, sizeNumber, targetEmp);
//        if (pageNumber > page.getPages()) {
//            page = service.getPage((int) page.getPages(), sizeNumber, targetEmp);
//        }
        if (page == null) {
            return R.failed("系统错误~");
        }
        return R.ok(page);
    }


}

